Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
75.00% covered (warning)
75.00%
18 / 24
75.00% covered (warning)
75.00%
3 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
AppServiceProvider
75.00% covered (warning)
75.00%
18 / 24
75.00% covered (warning)
75.00%
3 / 4
10.27
0.00% covered (danger)
0.00%
0 / 1
 boot
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
3
 register
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 addMenus
50.00% covered (danger)
50.00%
6 / 12
0.00% covered (danger)
0.00%
0 / 1
6.00
 generateMenu
100.00% covered (success)
100.00%
7 / 7
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace Crater\Providers;
4
5use Illuminate\Pagination\Paginator;
6use Illuminate\Support\Facades\Schema;
7use Illuminate\Support\ServiceProvider;
8
9class AppServiceProvider extends ServiceProvider
10{
11    /**
12     * Bootstrap any application services.
13     *
14     * @return void
15     */
16    public function boot()
17    {
18        Paginator::useBootstrapThree();
19        $this->loadJsonTranslationsFrom(resource_path('scripts/locales'));
20
21        if (\Storage::disk('local')->has('database_created') && Schema::hasTable('abilities')) {
22            $this->addMenus();
23        }
24    }
25
26    /**
27     * Register any application services.
28     *
29     * @return void
30     */
31    public function register()
32    {
33        //
34    }
35
36    public function addMenus()
37    {
38        //main menu
39        \Menu::make('main_menu', function ($menu) {
40            foreach (config('crater.main_menu') as $data) {
41                $this->generateMenu($menu, $data);
42            }
43        });
44
45        //setting menu
46        \Menu::make('setting_menu', function ($menu) {
47            foreach (config('crater.setting_menu') as $data) {
48                $this->generateMenu($menu, $data);
49            }
50        });
51
52        \Menu::make('customer_portal_menu', function ($menu) {
53            foreach (config('crater.customer_menu') as $data) {
54                $this->generateMenu($menu, $data);
55            }
56        });
57    }
58
59    public function generateMenu($menu, $data)
60    {
61        $menu->add($data['title'], $data['link'])
62            ->data('icon', $data['icon'])
63            ->data('name', $data['name'])
64            ->data('owner_only', $data['owner_only'])
65            ->data('ability', $data['ability'])
66            ->data('model', $data['model'])
67            ->data('group', $data['group']);
68    }
69}